Manager: Carbon Printing Manager



Carbon introduces a new printing model that allows applications to print on Mac OS 8 with existing printer drivers and on Mac OS X with new printer drivers.

On Mac OS 8, the Carbon Printing Manager calls through to the original Printing Manager functions. But on Mac OS X, Carbon applications automatically use a new printing architecture and print through different drivers.

The following is a summary of the major changes you need to be aware of. More information is available on the Carbon website: <http://developer.apple.com/macosx/carbon/>

* The Print Record (TPrint) is no longer directly accessible by applications, and has been split into two separate opaque objects: a PrintSettings object and a PageFormat object. Applications will be given references to these two privately-defined data structures. These references are then used to query the Printing Manager for information contained within the objects.

* A consequence of splitting the Print Record and making it private is there are no fixed sizes. Applications will be able to "extend" both the PrintSettings and PageFormat objects, but applications must not assume a specific size when storing and retrieving PageFormat objects with documents.

* The Carbon Printing Manager will supply functions for flattening and restoring both the PrintSettings and PageFormat objects. When storing printing information with documents, it will suffice to store just the PageFormat object. If older versions of your application store a print record with a saved document, you may continue to do so to provide backward compatibility.

* Application developers should reduce the use of calls that append items to print dialog boxes. We expect to provide a new panel-based interface in the near future.

* There are many improvements to the QuickDraw interfaces for Carbon, including new accessor functions and data structures that should be used.

* All print records use the "draft" style, not the "deferred" style, which implies that a print driver must handle the spooling if it wants to provide spooling for the user. Many, if not all, print drivers perform their own spooling and don't require applications to call PrPicFile to implement spooling. Because it is rarely used, we are eliminating system level spooling code from the Carbon Printing Manager.

* The Carbon Printing Manager now enforces an order in which some routines are called. Any routine used out of scope will return an error.

* All Carbon Printing Manager routines are only valid within a PMBegin/PMEnd block.

* PrintSettings and PageFormats objects are automatically disposed of during a PMEnd call.

Under Evaluation  DisposePMIdleUPP

Under Evaluation  DisposePMItemUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  DisposePMPageSetupDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  DisposePMPrintDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  DisposePMSheetDoneUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  InvokePMIdleUPP

Under Evaluation  InvokePMItemUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  InvokePMPageSetupDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  InvokePMPrintDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  InvokePMSheetDoneUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  NewPMIdleUPP

Under Evaluation  NewPMItemUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  NewPMPageSetupDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  NewPMPrintDialogInitUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Under Evaluation  NewPMSheetDoneUPP

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMBegin

The function PMBegin replaces the Printing Manager function PrOpen.

Supported  PMBeginDocument

The PMBeginDocument function replaces the Printing Manager function PrOpenDoc.

The Printing Manager function PrOpenDoc included a parameter that pointed to an input and output buffer. For Carbon, drivers are assumed to be handling I/O buffering. Therefore, PMBeginDocument has no similar parameter.

Supported  PMBeginPage

The PMBeginPage function replaces the Printing Manager function PrOpenPage.

Supported  PMConvertOldPrintRecord

Supported  PMCopyPageFormat

Supported  PMCopyPrintSettings

Supported  PMCreatePageFormat

PMCreatePageFormat combined with PMCreatePrintSettings is equivalent to creating a new Classic Printing Record (TPrint).

Supported  PMCreatePrintSettings

PMCreatePrintSettings combined with PMCreatePageFormat is equivalent to creating a new Classic Printing Record (TPrint).

Supported  PMCreateSession

PMCreateSession is equivalent to the Classic Printing Manager function PrOpen.

Supported  PMDefaultPageFormat

The PMDefaultPageFormat function and the PMDefaultPrintSettings function replace the Printing Manager function PrintDefault.

Supported  PMDefaultPrintSettings

The PMDefaultPrintSettings function and the PMDefaultPageFormat function replace the Printing Manager function PrintDefault.

Supported  PMDisableColorSync

Supported  PMDisposePageFormat

Supported  PMDisposePrintSettings

Supported  PMEnableColorSync

Supported  PMEnd

The function PMEnd replaces the Printing Manager function PrClose.

Supported  PMEndDocument

The PMEndDocument replaces the Printing Manager function PrCloseDoc.

Supported  PMEndPage

The PMEndPage function replaces the Printing Manager function PrClosePage.

Not Recommended  PMError

The PMError function replaces the Printing Manager function PrError. However, you should reduce your application use of PMError and instead respond to result codes as soon as they are returned by Carbon Printing Manager functions.

Supported  PMFlattenPageFormat

Supported  PMFlattenPrintSettings

Not Recommended  PMGeneral

The PMGeneral function is an interim replacement for the Printing Manager function PrGeneral.

Supported  PMGetAdjustedPageRect

Supported  PMGetAdjustedPaperRect

Supported  PMGetColorMode

Supported  PMGetCopies

The PMGetCopies function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information formerly stored in the iCopies field of the Printing Manager structure TPrJob.

Supported  PMGetDestination

Not Recommended  PMGetDialogAccepted

PMGetDialogAccepted gives you access to the information formerly contained in the fDoIt field of the Printing Manager structure TPrDlg . Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMGetDialogDone

PMGetDialogDone gives you access to the information formerly contained in the fDone field of the Printing Manager structure TPrDlg . Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMGetDialogPtr

PMGetDialogPtr gives you access to the information formerly contained in the dlg field of the Printing Manager structure TPrDlg . Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMGetDriverCreator

The PMGetDriverCreator function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode.

Supported  PMGetDriverReleaseInfo

The PMGetDriverReleaseInfo function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information formerly contained in the iPrVersion of the Printing Manager structure TPrint.

Supported  PMGetFirstPage

The PMGetFirstPage function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iFstPage field of the Printing Manager structure TPrJob.

Supported  PMGetGrafPtr

The PMGetGrafPtr function allows access to the pointer formerly stored in the gPort field of the Printing Manager structure TPrPort.

Supported  PMGetIndexedPrinterResolution

Supported  PMGetItemProc

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMGetJobName

Supported  PMGetJobNameCFString

Supported  PMGetLanguageInfo

Supported  PMGetLastPage

The PMGetLastPage function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iLstPage field of the Printing Manager structure TPrJob.

Supported  PMGetModalFilterProc

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMGetOrientation

The PMGetOrientation function replaces the Printing Manager opcode getRotnOp, and obtains information formerly stored in the lower byte of the wDev field of the Printing Manager structure TPrStl.

Supported  PMGetPageFormatExtendedData

Supported  PMGetPageRange

The PMGetPageRange function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and obtains information previously stored in the iFstPage and iLstPage fields of the Printing Manager structure TPrJob.

Supported  PMGetPhysicalPageSize

Supported  PMGetPhysicalPaperSize

Supported  PMGetPrinterResolution

Supported  PMGetPrinterResolutionCount

Supported  PMGetPrintSettingsExtendedData

Supported  PMGetResolution

This function replaces the Printing Manager opcode getRslDataOp and allows access to information formerly stored in the iVRes and iHRes fields of the Printing Manager structure TPrInfo.

Supported  PMGetScale

Not Recommended  PMIdleProcPtr

Supported  PMIsPostScriptDriver

Not Recommended  PMItemProcPtr

Supported  PMMakeOldPrintRecord

Supported  PMNewPageFormat

Supported  PMNewPrintSettings

Supported  PMPageSetupDialog

The PMPageSetUpDialog function replaces the Printing Manager function PrStlDialog. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMPageSetupDialogInit

The PMPageSetUpDialogInit function replaces the Printing Manager function PrStlInit. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMPageSetupDialogInitProcPtr

Supported  PMPageSetupDialogMain

The PMPageSetUpDialogMain function replaces the Printing Manager function PrDlgMain.

A panel interface under development will eventually make it unnecessary to call PMPageSetUpDialogMain. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMPostScriptBegin

Supported  PMPostScriptData

Supported  PMPostScriptEnd

Supported  PMPostScriptFile

Supported  PMPostScriptHandle

Supported  PMPrintDialog

The PMPrintDialog function replaces the Printing Manager function PrJobDialog. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMPrintDialogInit

The PMPrintDialogInit function replaces the Printing Manager function PrJobInit. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMPrintDialogInitProcPtr

Under Evaluation  PMPrintDialogInitWithPageFormat

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMPrintDialogMain

The PMPrintDialogMain function replaces the Dialog Manager function PrDlgMain. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMPrinterGetDescriptionURL

Supported  PMPrinterGetDriverCreator

Supported  PMPrinterGetDriverReleaseInfo

Supported  PMPrinterGetIndexedPrinterResolution

Supported  PMPrinterGetLanguageInfo

Supported  PMPrinterGetPrinterResolution

Supported  PMPrinterGetPrinterResolutionCount

Supported  PMRelease

PMRelease is equivalent to the Classic Printing Manager function PrClose when the parameter is a PMPrintSession object and its reference count is zero.

Supported  PMRetain

Supported  PMSessionBeginDocument

PMSessionBeginDocument is equivalent to the Classic Printing Manager function PrOpenDoc.

Supported  PMSessionBeginPage

PMSessionBeginPage is equivalent to the Classic Printing Manager function PrOpenPage.

Supported  PMSessionConvertOldPrintRecord

Supported  PMSessionDefaultPageFormat

PMSessionDefaultPageFormat combined with PMSessionDefaultPrintSettings is equivalent to the Classic Printing Manager function PrintDefault.

Supported  PMSessionDefaultPrintSettings

PMSessionDefaultPrintSettings combined with PMSessionDefaultPageFormat is equivalent to the Classic Printing Manager function PrintDefault.

Supported  PMSessionDisableColorSync

Supported  PMSessionEnableColorSync

Supported  PMSessionEndDocument

PMSessionEndDocument is equivalent to the Classic Printing Manager function PrCloseDoc.

Supported  PMSessionEndPage

PMSessionEndPage is equivalent to the Classic Printing Manager function PrClosePage.

Supported  PMSessionError

Supported  PMSessionGeneral

Supported  PMSessionGetCurrentPrinter

Supported  PMSessionGetDocumentFormatGeneration

Supported  PMSessionGetDocumentFormatSupported

Supported  PMSessionGetGraphicsContext

Supported  PMSessionIsDocumentFormatSupported

Supported  PMSessionMakeOldPrintRecord

Supported  PMSessionPageSetupDialog

PMSessionPageSetupDialog is equivalent to the Classic Printing Manager function PrStlDialog. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionPageSetupDialogInit

PMSessionPageSetupDialogInit is equivalent to the Classic Printing Manager function PrStlInit. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionPageSetupDialogMain

PMSessionPageSetupDialogMain is equivalent to the Classic Printing Manager function PrDlgMain. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionPostScriptBegin

Supported  PMSessionPostScriptData

Supported  PMSessionPostScriptEnd

Supported  PMSessionPostScriptFile

Supported  PMSessionPostScriptHandle

Supported  PMSessionPrintDialog

PMSessionPrintDialog is equivalent to the Classic Printing Manager function PrJobDialog. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionPrintDialogInit

PMSessionPrintDialog is equivalent to the Classic Printing Manager function PrJobInit. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionPrintDialogMain

PMSessionPrintDialogMain is equivalent to the Classic Printing Manager function PrDlgMain. Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionSetDocumentFormatGeneration

Supported  PMSessionSetError

Supported  PMSessionSetIdleProc

PMSessionSetIdleProc is equivalent to setting the TPrJob.pIdleProc field in the Classic Printing Record.

Under Evaluation  PMSessionUseSheets

Available in Mac OS 8.1 and later when Carbon 1.1 or later is present.

Supported  PMSessionValidatePageFormat

PMSessionValidatePageFormat combined with PMSessionValidatePrintSettings is equivalent to the Classic Printing Manager function PrValidate.

Supported  PMSessionValidatePrintSettings

PMSessionValidatePrintSettings combined with PMSessionValidatePageFormat is equivalent to the Classic Printing Manager function PrValidate.

Supported  PMSetColorMode

Supported  PMSetCopies

The PMSetCopies function replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information formerly stored in the iCopies field of the Printing Manager structure TPrJob.

Not Recommended  PMSetDialogAccepted

The PMSetDialogAccepted lets you set information formerly contained in the fDoIt field of the Printing Manager structure TPrDlg . Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMSetDialogDone

The <PMSetDialogDone lets you set information formerly contained in the fDone field of the Printing Manager structure TPrDlg. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Not Recommended  PMSetError

The PMSetError function replaces the Printing Manager function PrSetError. You are encouraged to reduce your use of this function.

Supported  PMSetFirstPage

The PMSetFirstPagefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iFstPage field of the Printing Manager structure TPrJob.

Not Recommended  PMSetIdleProc

Not Recommended  PMSetItemProc

The PMSetItemProc function allows you to set the pointer previously contained in the pItemProc field of the Printing Manager function TPrDlg. Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMSetJobName

Supported  PMSetJobNameCFString

Supported  PMSetLastPage

The PMSetLastPagefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iLstPage field of the Printing Manager structure TPrJob.

Not Recommended  PMSetModalFilterProc

Available in Mac OS 8.1 and later when Carbon 1.0.2 or later is present.

Supported  PMSetOrientation

The PMSetOrientation function replaces the Printing Manager opcode getRotnOp, and sets information formerly stored in the lower byte of the wDev field of the Printing Manager structure TPrStl.

Supported  PMSetPageFormatExtendedData

Supported  PMSetPageRange

The PMSetPageRangefunction replaces the Printing Manager opcode kPrinterDirectOpCode in kPDVerifySelect mode, and sets information previously stored in the iFstPage and iLstPage fields of the Printing Manager structure TPrJob.

Supported  PMSetPhysicalPaperSize

Supported  PMSetPrintSettingsExtendedData

Supported  PMSetProfile

Supported  PMSetResolution

This function replaces the Printing Manager opcode getRslDataOp and allows you to change information formerly stored in the iVRes and iHRes fields of the Printing Manager structure TPrInfo.

Supported  PMSetScale

Under Evaluation  PMSheetDoneProcPtr

Supported  PMUnflattenPageFormat

Supported  PMUnflattenPrintSettings

Supported  PMValidatePageFormat

The PMValidatePrintSettings and PMValidatePageFormat functions replace the Printing Manager function PrValidate.

Supported  PMValidatePrintSettings

The PMValidatePrintSettings and PMValidatePageFormat functions replace the Printing Manager function PrValidate.

[Table of Contents] [Manager Index] [Function Index]

Generated on: 5/11/2000. Copyright © 1999, 2000 Apple Computer, Inc. All rights reserved.